package cn.sdxx.qddata.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 解决跨域问题
 * 浏览器执行javascript脚本时，会检查这个脚本属于哪个页面，如果不是同源（协议、域名、端口都相同）页面，就不会被执行。
 * 当域名www.abc.com下的js代码去访问www.def.com域名下的资源，就会受到限制。
 */
@Configuration
public class CORSConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //Access-Control-Allow-Origin的作用在于，允许特定白名单用户（浏览器）访问我这个接口。
        //说明：allowCredentials表示允许客户端携带验证信息（比如cookie）
        // 当服务器设置了Access-Control-Allow-Credentials: true之后，Access-Control-Allow-Origin就不能设置为 * 了
        // 因此，当allowCredentials(true)时，allowedOrigins(“*”)应替换为allowedOriginPatterns(“*”)

//        registry.addMapping("/**")
//                .allowedOriginPatterns("*")  //所有的域
//                .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
//                .allowCredentials(true)
//                .maxAge(3600)
//                .allowedHeaders("*");
    }
}
